package org.example.flea_market_mvc.config;  // 推荐放在config子包中

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:5173")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true);
    }
}

//问题分析
//请求背景：
//
//前端运行在 http://localhost:5173，向后端 http://localhost:8081/api/users/login 发起了一个 POST 请求。
//
//浏览器自动发送了 OPTIONS 预检请求（因为请求头包含 content-type，属于非简单请求）。
//
//预检请求的目的是检查服务器是否允许跨域请求。
//
//关键日志：
//
//OPTIONS "/api/users/login", parameters={} → 预检请求到达后端。
//
//Mapped to UserController#login → 请求被映射到登录方法（但OPTIONS请求不应触发业务逻辑）。
//
//Completed 403 FORBIDDEN → 服务器拒绝了OPTIONS请求。
//
//根本原因：
//
//后端未正确配置 CORS 支持，导致OPTIONS请求被安全框架（如Spring Security）拦截。
//
//默认情况下，Spring Security会拒绝OPTIONS请求（即使接口本身不需要认证）。